【办公自动化实例】根据关键词从word文档中提取相关信息并存到excel表格中

您所在的位置:网站首页 从excel提取数据到word 自动 【办公自动化实例】根据关键词从word文档中提取相关信息并存到excel表格中

【办公自动化实例】根据关键词从word文档中提取相关信息并存到excel表格中

2024-01-03 12:58| 来源: 网络整理| 查看: 265

文章目录 一、需求二、分析及思路三、整体代码四、截图:

一、需求

根据关键词,从Word文档里的表格中提取所需要的数据汇总到Excel中,并汇总到Excel中做台帐。

二、分析及思路

常规表格中,我们一般会通过横向填写或者竖向填写的方式来进行内容的填写,有些单元格还会有合并的情况,如下图所示,通过 python 的 docx 模块,可以完成 word 文档的信息提取: 在这里插入图片描述

2.1 遍历文件夹中,需要提取的 docx 文件(这里最好是把将要提取的文件放在一个文件夹中) 2.2 通过 docx 模块里面的 table 方法,通过读取行/列的方式,遍历所有表格及表格中的内容; 2.3 通过给定的关键词,筛选出需要的数据; 2.4 将获取到的所有数据通过 pandas 存储的方式保存至 excel 中。

三、整体代码 from docx import Document from openpyxl import load_workbook import pandas as pd import glob ''' 关键词存储在excel表格中,先提取(也可以直接手动写一个字典用于存储关键词) ''' workbook = load_workbook(filename = '1.xlsx') sheet = workbook.active data_size = sheet.dimensions dic={} for cell in sheet[data_size][0]: dic[cell.value]='' ''' 遍历docx文件,读取表格相关内容 ''' doc_ls=[] dic1={} for path in glob.glob('*.docx'): doc = Document(path) for table in doc.tables: try: # 按行的方式读取 for rows in table.rows: for i in range(0,len(rows.cells)): if rows.cells[i].text in list(dic.keys()): key = rows.cells[i].text value = rows.cells[i+1].text dic1[key] = [value] doc_ls.append(pd.DataFrame(dic1)) except: # 按列的方式读取 for cols in table.columns: for i in range(0,len(cols.cells)): if cols.cells[i].text in list(dic.keys()): key = cols.cells[i].text value = cols.cells[i+1].text dic1[key] = [value] doc_ls.append(pd.DataFrame(dic1)) ''' 文件的合并存储 ''' df = pd.concat(doc_ls) df.to_excel('提取后数据.xlsx')

代码相对简单,测试数据目前相对较少,可能有bug。

四、截图:

4.1 关键词的存储方式 在这里插入图片描述 4.2 提取后的数据 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3